[INFO] cloning repository https://github.com/david-cattermole/timetracker
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/david-cattermole/timetracker" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-cattermole%2Ftimetracker", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-cattermole%2Ftimetracker'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 0a267e69b4109548e273536d62d769c2324fc4a8
[INFO] fixing david-cattermole/timetracker against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=end=2015,2024 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdavid-cattermole%2Ftimetracker" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/david-cattermole/timetracker
[INFO] finished tweaking git repo https://github.com/david-cattermole/timetracker
[INFO] tweaked toml for git repo https://github.com/david-cattermole/timetracker written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/david-cattermole/timetracker on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/david-cattermole/timetracker already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] b177ae5646d3b125ade5504e40185a04a85040705ace29cd01db23abcbca1efe
[INFO] running `Command { std: "docker" "start" "b177ae5646d3b125ade5504e40185a04a85040705ace29cd01db23abcbca1efe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b177ae5646d3b125ade5504e40185a04a85040705ace29cd01db23abcbca1efe" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b177ae5646d3b125ade5504e40185a04a85040705ace29cd01db23abcbca1efe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b177ae5646d3b125ade5504e40185a04a85040705ace29cd01db23abcbca1efe" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=end=2015,2024", kill_on_drop: false }`
[INFO] [stderr] crater-edition-check: migrating to next edition
[INFO] [stderr]    Migrating configure-bin/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating core/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating dump-bin/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating print-lib/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating print-bin/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating print-gui-bin/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Migrating recorder-bin/Cargo.toml from 2021 edition to 2024
[INFO] [stderr]    Compiling serde v1.0.196
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling hashbrown v0.14.3
[INFO] [stderr]    Compiling equivalent v1.0.1
[INFO] [stderr]    Compiling winnow v0.5.40
[INFO] [stderr]    Compiling target-lexicon v0.12.13
[INFO] [stderr]    Compiling smallvec v1.13.1
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]    Compiling ahash v0.8.8
[INFO] [stderr]     Checking bitflags v2.4.2
[INFO] [stderr]     Checking zerocopy v0.7.32
[INFO] [stderr]    Compiling jobserver v0.1.28
[INFO] [stderr]     Checking allocator-api2 v0.2.16
[INFO] [stderr]    Compiling syn v2.0.48
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling num-traits v0.2.18
[INFO] [stderr]     Checking utf8parse v0.2.1
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]    Compiling cc v1.0.83
[INFO] [stderr]     Checking anstyle-parse v0.2.3
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking log v0.4.20
[INFO] [stderr]     Checking colorchoice v1.0.0
[INFO] [stderr]     Checking os_str_bytes v6.6.1
[INFO] [stderr]     Checking anstyle-query v1.0.2
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking anstyle v1.0.6
[INFO] [stderr]     Checking clap_lex v0.2.4
[INFO] [stderr]    Compiling indexmap v2.2.3
[INFO] [stderr]     Checking anstream v0.6.11
[INFO] [stderr]     Checking dirs v4.0.0
[INFO] [stderr]    Compiling clap_derive v3.2.25
[INFO] [stderr]     Checking humantime v2.1.0
[INFO] [stderr]    Compiling cfg-expr v0.15.7
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking textwrap v0.16.0
[INFO] [stderr]     Checking pathdiff v0.2.1
[INFO] [stderr]     Checking shellexpand v3.1.0
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]    Compiling num-derive v0.3.3
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]    Compiling thiserror v1.0.57
[INFO] [stderr]     Checking pin-project-lite v0.2.13
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]    Compiling semver v1.0.21
[INFO] [stderr]    Compiling gio v0.18.4
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]     Checking chrono v0.4.34
[INFO] [stderr]     Checking colored v2.1.0
[INFO] [stderr]    Compiling memoffset v0.9.0
[INFO] [stderr]    Compiling gtk v0.18.1
[INFO] [stderr]    Compiling x11 v2.21.0
[INFO] [stderr]    Compiling libsqlite3-sys v0.26.0
[INFO] [stderr]    Compiling timetracker-recorder v0.4.3 (/opt/rustwide/workdir/recorder-bin)
[INFO] [stderr]    Migrating recorder-bin/build.rs from 2021 edition to 2024
[INFO] [stderr]    Compiling rustc_version v0.4.0
[INFO] [stderr]     Checking terminfo v0.8.0
[INFO] [stderr]    Compiling field-offset v0.3.6
[INFO] [stderr]     Checking clap v3.2.25
[INFO] [stderr]     Checking toml_datetime v0.6.3
[INFO] [stderr]     Checking serde_spanned v0.6.5
[INFO] [stderr]     Checking toml_edit v0.20.2
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling serde_derive v1.0.196
[INFO] [stderr]    Compiling thiserror-impl v1.0.57
[INFO] [stderr]    Compiling toml_edit v0.19.15
[INFO] [stderr]     Checking env_filter v0.1.0
[INFO] [stderr]     Checking env_logger v0.11.2
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking toml v0.8.2
[INFO] [stderr]     Checking config v0.14.0
[INFO] [stderr]    Compiling proc-macro-crate v2.0.2
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]    Compiling proc-macro-crate v1.3.1
[INFO] [stderr]    Compiling system-deps v6.2.0
[INFO] [stderr]    Compiling glib-macros v0.18.5
[INFO] [stderr]    Compiling gtk3-macros v0.18.0
[INFO] [stderr]    Compiling glib-sys v0.18.1
[INFO] [stderr]    Compiling gobject-sys v0.18.0
[INFO] [stderr]    Compiling gio-sys v0.18.1
[INFO] [stderr]    Compiling atk-sys v0.18.0
[INFO] [stderr]    Compiling gdk-sys v0.18.0
[INFO] [stderr]    Compiling pango-sys v0.18.0
[INFO] [stderr]    Compiling gdk-pixbuf-sys v0.18.0
[INFO] [stderr]    Compiling cairo-sys-rs v0.18.2
[INFO] [stderr]    Compiling gtk-sys v0.18.0
[INFO] [stderr]     Checking glib v0.18.5
[INFO] [stderr]     Checking rusqlite v0.29.0
[INFO] [stderr]     Checking timetracker-core v0.4.3 (/opt/rustwide/workdir/core)
[INFO] [stderr]    Migrating core/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]     Checking timetracker-print-lib v0.4.3 (/opt/rustwide/workdir/print-lib)
[INFO] [stderr]     Checking timetracker-configure v0.4.3 (/opt/rustwide/workdir/configure-bin)
[INFO] [stderr]    Migrating print-lib/src/lib.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating configure-bin/src/main.rs from 2021 edition to 2024
[INFO] [stderr]     Checking timetracker-dump v0.4.3 (/opt/rustwide/workdir/dump-bin)
[INFO] [stderr]     Checking timetracker-print v0.4.3 (/opt/rustwide/workdir/print-bin)
[INFO] [stderr]     Checking cairo-rs v0.18.5
[INFO] [stderr]     Checking atk v0.18.0
[INFO] [stderr]    Migrating dump-bin/src/main.rs from 2021 edition to 2024
[INFO] [stderr]    Migrating print-bin/src/main.rs from 2021 edition to 2024
[INFO] [stderr]     Checking gdk-pixbuf v0.18.5
[INFO] [stderr]     Checking pango v0.18.3
[INFO] [stderr]     Checking gdk v0.18.0
[INFO] [stderr]     Checking timetracker-print-gui v0.4.3 (/opt/rustwide/workdir/print-gui-bin)
[INFO] [stderr]    Migrating recorder-bin/src/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Migrating print-gui-bin/src/main.rs from 2021 edition to 2024
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:135:40
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let database_file_path = unsafe { &CLEANUP_DATABASE_FILE_PATH.lock().unwrap() };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:161:46
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut cleanup_database_file_path = CLEANUP_DATABASE_FILE_PATH.lock().unwrap();
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:283:28
[INFO] [stdout]     |
[INFO] [stdout] 283 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `--force-warn static-mut-refs` implied by `--force-warn rust-2024-compatibility`
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:135:40
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let database_file_path = unsafe { &CLEANUP_DATABASE_FILE_PATH.lock().unwrap() };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:161:46
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut cleanup_database_file_path = CLEANUP_DATABASE_FILE_PATH.lock().unwrap();
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:283:28
[INFO] [stdout]     |
[INFO] [stdout] 283 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 18s
[INFO] [stderr] crater-edition-check: timetracker-configure v0.4.3 (/opt/rustwide/workdir/configure-bin) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: timetracker-core v0.4.3 (/opt/rustwide/workdir/core) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: timetracker-dump v0.4.3 (/opt/rustwide/workdir/dump-bin) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: timetracker-print-lib v0.4.3 (/opt/rustwide/workdir/print-lib) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: timetracker-print v0.4.3 (/opt/rustwide/workdir/print-bin) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: timetracker-print-gui v0.4.3 (/opt/rustwide/workdir/print-gui-bin) updating edition from 2021 to 2024
[INFO] [stderr] crater-edition-check: timetracker-recorder v0.4.3 (/opt/rustwide/workdir/recorder-bin) updating edition from 2021 to 2024
[INFO] [stderr]     Checking timetracker-core v0.4.3 (/opt/rustwide/workdir/core)
[INFO] [stderr]    Compiling timetracker-recorder v0.4.3 (/opt/rustwide/workdir/recorder-bin)
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> core/src/entries.rs:12:53
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                     ^------------
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     `FromPrimitive` is not local
[INFO] [stdout]    |                                                     move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_EntryStatus`
[INFO] [stdout] 13 | pub enum EntryStatus {
[INFO] [stdout]    |          ----------- `EntryStatus` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> core/src/entries.rs:12:68
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                                    ^----------
[INFO] [stdout]    |                                                                    |
[INFO] [stdout]    |                                                                    `ToPrimitive` is not local
[INFO] [stdout]    |                                                                    move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_EntryStatus`
[INFO] [stdout] 13 | pub enum EntryStatus {
[INFO] [stdout]    |          ----------- `EntryStatus` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> core/src/entries.rs:12:53
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                     ^------------
[INFO] [stdout]    |                                                     |
[INFO] [stdout]    |                                                     `FromPrimitive` is not local
[INFO] [stdout]    |                                                     move the `impl` block outside of this constant `_IMPL_NUM_FromPrimitive_FOR_EntryStatus`
[INFO] [stdout] 13 | pub enum EntryStatus {
[INFO] [stdout]    |          ----------- `EntryStatus` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `FromPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `FromPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `FromPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> core/src/entries.rs:12:68
[INFO] [stdout]    |
[INFO] [stdout] 12 | #[derive(Debug, Copy, Clone, PartialEq, PartialOrd, FromPrimitive, ToPrimitive)]
[INFO] [stdout]    |                                                                    ^----------
[INFO] [stdout]    |                                                                    |
[INFO] [stdout]    |                                                                    `ToPrimitive` is not local
[INFO] [stdout]    |                                                                    move the `impl` block outside of this constant `_IMPL_NUM_ToPrimitive_FOR_EntryStatus`
[INFO] [stdout] 13 | pub enum EntryStatus {
[INFO] [stdout]    |          ----------- `EntryStatus` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `ToPrimitive` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `ToPrimitive` may come from an old version of the `num_derive` crate, try updating your dependency with `cargo update -p num_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `ToPrimitive` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking timetracker-print-lib v0.4.3 (/opt/rustwide/workdir/print-lib)
[INFO] [stderr]     Checking timetracker-configure v0.4.3 (/opt/rustwide/workdir/configure-bin)
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:135:40
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let database_file_path = unsafe { &CLEANUP_DATABASE_FILE_PATH.lock().unwrap() };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:161:46
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut cleanup_database_file_path = CLEANUP_DATABASE_FILE_PATH.lock().unwrap();
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> recorder-bin/src/main.rs:167:56
[INFO] [stdout]     |
[INFO] [stdout] 167 |     install_signal_handler(libc::SIGINT, handle_signal as usize);
[INFO] [stdout]     |                                                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 167 |     install_signal_handler(libc::SIGINT, handle_signal as *const () as usize);
[INFO] [stdout]     |                                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> recorder-bin/src/main.rs:168:57
[INFO] [stdout]     |
[INFO] [stdout] 168 |     install_signal_handler(libc::SIGTERM, handle_signal as usize);
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 168 |     install_signal_handler(libc::SIGTERM, handle_signal as *const () as usize);
[INFO] [stdout]     |                                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:283:28
[INFO] [stdout]     |
[INFO] [stdout] 283 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `timetracker-recorder` (bin "timetracker-recorder") due to 4 previous errors; 2 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:104:28
[INFO] [stdout]     |
[INFO] [stdout] 104 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout]     = note: `#[deny(static_mut_refs)]` (part of `#[deny(rust_2024_compatibility)]`) on by default
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:135:40
[INFO] [stdout]     |
[INFO] [stdout] 135 |     let database_file_path = unsafe { &CLEANUP_DATABASE_FILE_PATH.lock().unwrap() };
[INFO] [stdout]     |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:161:46
[INFO] [stdout]     |
[INFO] [stdout] 161 |         let mut cleanup_database_file_path = CLEANUP_DATABASE_FILE_PATH.lock().unwrap();
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  51 - static mut CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]  51 + static CLEANUP_DATABASE_FILE_PATH: Lazy<Mutex<PathBuf>> =
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> recorder-bin/src/main.rs:167:56
[INFO] [stdout]     |
[INFO] [stdout] 167 |     install_signal_handler(libc::SIGINT, handle_signal as usize);
[INFO] [stdout]     |                                                        ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(function_casts_as_integer)]` on by default
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 167 |     install_signal_handler(libc::SIGINT, handle_signal as *const () as usize);
[INFO] [stdout]     |                                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: direct cast of function item into an integer
[INFO] [stdout]    --> recorder-bin/src/main.rs:168:57
[INFO] [stdout]     |
[INFO] [stdout] 168 |     install_signal_handler(libc::SIGTERM, handle_signal as usize);
[INFO] [stdout]     |                                                         ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: first cast to a pointer `as *const ()`
[INFO] [stdout]     |
[INFO] [stdout] 168 |     install_signal_handler(libc::SIGTERM, handle_signal as *const () as usize);
[INFO] [stdout]     |                                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: creating a shared reference to mutable static
[INFO] [stdout]    --> recorder-bin/src/main.rs:283:28
[INFO] [stdout]     |
[INFO] [stdout] 283 |             let mut data = ENTRY_BUFFER.lock().unwrap();
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^^^ shared reference to mutable static
[INFO] [stdout]     |
[INFO] [stdout]     = note: shared references to mutable statics are dangerous; it's undefined behavior if the static is mutated or if a mutable reference is created for it while the shared reference lives
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>
[INFO] [stdout] help: this type already provides "interior mutability", so its binding doesn't need to be declared as mutable
[INFO] [stdout]     |
[INFO] [stdout]  43 - static mut ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]  43 + static ENTRY_BUFFER: Lazy<Mutex<Vec<Entry>>> = Lazy::new(|| Mutex::new(vec![]));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `timetracker-recorder` (bin "timetracker-recorder" test) due to 4 previous errors; 2 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "b177ae5646d3b125ade5504e40185a04a85040705ace29cd01db23abcbca1efe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b177ae5646d3b125ade5504e40185a04a85040705ace29cd01db23abcbca1efe", kill_on_drop: false }`
[INFO] [stdout] b177ae5646d3b125ade5504e40185a04a85040705ace29cd01db23abcbca1efe
